#include<iostream> 
#include<algorithm> 

using namespace std;

const int N=1010;

int n,ans=0;
int vis[N][N],g[N][N];
int move[2][4]={{-1,1,0,0},{0,0,-1,1}};

void dfs(int x,int y)
{
  if(x<=0 || x>=6 || y<=0 || y>=6){
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			printf("%d",g[i][j]);
		}
		printf("\n");
	}
    return;
  }
  
  for(int i=0; i<4; i++){
    int curx = x+move[0][i];
    int cury = y+move[1][i];
    if(!vis[curx][cury] && !vis[n-curx][n-cury]){
      vis[curx][cury]=1;
      vis[n-curx][n-cury]=1;
      g[curx][cury]=1;
      g[n-curx][n-cury]=0;
      dfs(curx,cury);
    }
  }
  
} 


int main()
{
  scanf("%d",&n);
  
  dfs(n/2,n/2);
  
  return 0;
}
